using System;
using System.Collections.Generic;
using System.Text;
using TuringMachine;
using NUnit.Framework;

namespace TuringMachine
{
    [TestFixture(Description="Tests set for testing Tape")]
    public class TapeTests
    {
        /*
        private Tape tape;
        private UInt16 position;
        private String input;
        

        [Test(Description="Test constructor with empty arguments")]
        [Category("Constructor")]
        public void ConstructorTestWithoutArguments()
        {
            tape = new Tape();
            Assert.AreEqual(tape.TapeInput, String.Empty);
            Assert.AreEqual(tape.Position, 0);
        }

        [Test(Description = "Tests constructor with one argument")]
        [Category("Constructor")]
        public void ConstructorTestWithOneArgument()
        {
            tape = new Tape("Input");
            Assert.AreEqual(tape.TapeInput, "Input");
            Assert.AreEqual(tape.Position, 0);
        }

        [Test(Description = "Test constructor with both arguments")]
        [Category("Constructor")]
        public void ConstructorTestWithBothArguments()
        {
            tape = new Tape("Input",2);
            Assert.AreEqual(tape.TapeInput, "Input");
            Assert.AreEqual(tape.Position, 2);
            Assert.AreEqual(tape.CurrentChar, 'p');
        }

        [Test(Description="Test move right function")]
        public void TestMoveRight()
        {
            tape = new Tape("Input", 2);
            tape.MoveRight();
            Assert.AreEqual(tape.CurrentChar, 'u');
            Assert.AreEqual(tape.Position, 3);
            Assert.AreEqual(tape.TapeInput, "Input");
        }

        [Test(Description = "Test move left function")]
        public void TestMoveLeft()
        {
            tape = new Tape("Input", 2);
            tape.MoveLeft();
            Assert.AreEqual(tape.CurrentChar, 'n');
            Assert.AreEqual(tape.Position, 1);
            Assert.AreEqual(tape.TapeInput, "Input");
        }

        [Test(Description = "Negative test")]
        [Category("Negative")]
        [ExpectedException(typeof(IndexOutOfRangeException))]
        public void Negative()
        {
            tape = new Tape("Input");
            tape.Position = 6;
            char a = tape.CurrentChar;
        }

        */
    }
}
